package controllers

import (
	"iris/server"

	"github.com/kataras/iris/v12"
	"github.com/tidwall/gjson"
)

type BaseController struct {
	Ctx iris.Context
}

// 路由公共处理
func V1CommonHandler(ctx iris.Context) {

	// 当前路由地址
	api := ctx.Path()

	// 配置文件
	systemInfo := "system.json"
	// 获取配置信息
	system := server.GetFile(systemInfo)
	// 免登陆路由
	noTokenArr := gjson.Get(system, "noToken").Array()

	// 当前路由是否免登陆
	var noToken int
	for _, value := range noTokenArr {
		if value.String() == api {
			noToken = 1
		}
	}

	if noToken == 1 {

		// 继续向下访问路由
		ctx.Next()

	} else {

		// 获取token
		token := ctx.GetHeader("token")
		if len(token) == 0 {
			ctx.JSON(server.ResponseErr(1000))
			return
		}
		// 验证token
		deToken := server.DeToken(token)
		if deToken == 0 {
			ctx.JSON(server.ResponseErr(1000))
			return
		}

		// 继续向下访问路由
		ctx.Next()
	}
}
